package org.wangchaocheng.cloudgallery.user.gateway;

import java.util.List;

import org.wangchaocheng.cloudgallery.dto.user.UserAuthenticationDTO;

/**
 * @author wangchaocheng
 * @date 2025-03-01 10:30:19
 */
public interface UserAuthenticationGateway {
    /**
     * 保存用户认证信息
     *
     * @param userAuthenticationDTO 用户认证信息
     */
    void save(UserAuthenticationDTO userAuthenticationDTO);

    /**
     * 根据用户ID删除用户认证信息
     *
     * @param userId 用户ID
     */
    void removeByUserId(Long userId);

    /**
     * 根据认证标识删除用户认证信息
     *
     * @param identifier 认证标识
     */
    void removeByIdentifier(String identifier);

    /**
     * 根据认证标识获取用户认证信息
     *
     * @param identifier 认证标识
     * @return {@link UserAuthenticationDTO}
     */
    UserAuthenticationDTO findByIdentifier(String identifier);

    /**
     * 根据用户ID获取用户认证信息
     *
     * @param userId 用户ID
     * @return {@link UserAuthenticationDTO}
     */
    List<UserAuthenticationDTO> listByUserId(Long userId);

}
